#ifndef _LISTE_TERRAIN_H
#define _LISTE_TERRAIN_H

#include "terrain.h"
#include <iostream>

struct liste_terrain
{
       Terrain* ter;
       int numTer;
       liste_terrain* suivant;
       liste_terrain* precedant;
};

///cree une liste de terrain d'un niveau
liste_terrain* creerListeTerrain(FILE* f,int nbrTer,liste_terrain* precedent);

///suppr une liste de terrain
void supprimeListeTerrain(liste_terrain* lter);

///affiche la liste de terrain d'un niveau
void afficheListeTerrain(liste_terrain* lter);

///recup le terrain
Terrain* listeTerrainGetTerrain(const liste_terrain* lter);

///recup le numero du terrain
int listeTerrainGetNumTer(const liste_terrain* lter);

///recup le terrain suivant
liste_terrain* listeTerrainGetSuivant(const liste_terrain* lter);

///recup le terrain precedent
liste_terrain* listeTerrainGetPrecedant(const liste_terrain* lter);

///change le terrain
void listeTerrainSetTerrain(liste_terrain* lter, Terrain* ter);

///change le numero du terrain
void listeTerrainSetNumTer(liste_terrain* lter, int nbr);

///change le terrain suivant (en gros le 2e terrain suivant devient le terrain suivant direct puisque qu'avant on a probablement changé de terrain)
void listeTerrainSetSuivant(liste_terrain* lter, liste_terrain* suivant);

///change le terrain precedent (en gros l'ancien actuel devient le precedent, puisque qu'avant on a problement changé de terrain)
void listeTerrainSetPrecedant(liste_terrain* lter, liste_terrain* precedant);

///cherche un terrain par rapport à son numéro
Terrain* lterChercheTerrain(liste_terrain* lter,int numTer);

#endif
